package com.linxz.sdkmanager.umeng;

import android.content.Context;

import com.linxz.framework.configuration.ConfigKeys;
import com.linxz.framework.configuration.Linxz;
import com.umeng.analytics.MobclickAgent;
import com.umeng.commonsdk.UMConfigure;

/**
 * @author Linxz
 * 创建日期：2020年01月14日 13:47
 * version：v4.5.4
 * 描述：
 */
public class UMManager {

    private UMManager(){}

    private static class Holder{
        private final static UMManager INSTANCE=new UMManager();
    }

    public static UMManager getInstance(){
        return Holder.INSTANCE;
    }

    /**
     * 注意: 即使您已经在AndroidManifest.xml中配置过appkey和channel值，也需要在App代码中调
     * 用初始化接口（如需要使用AndroidManifest.xml中配置好的appkey和channel值，
     * UMConfigure.init调用中appkey和channel参数请置为null）。
     */
    public void init() {
        String appkey = Linxz.getConfiguration(ConfigKeys.UM_APP_KEY);
        String channel = Linxz.getConfiguration(ConfigKeys.UM_CHANNEL);
        String pushSecret =Linxz.getConfiguration(ConfigKeys.UM_PUSH_SECRET);
        int deviceType = 0;
        UMConfigure.init(Linxz.getApplicationContext(), appkey, channel, deviceType, pushSecret);

        UMConfigure.setLogEnabled(true);
        // 选用AUTO页面采集模式
        MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
    }


    public void onResume(Context context){
        MobclickAgent.onResume(context);
    }

    public void onPause(Context context){
        MobclickAgent.onPause(context);
    }

    /**
     * 非Activity页面,如Fragmen
     * Fragment页面onResume函数重载
     * 统计页面("MainScreen"为页面名称，可自定义)
     * MobclickAgent.onPageStart("MainScreen");
     * */
    public static void onPageStart(String viewName){
        MobclickAgent.onPageStart(viewName);
    }

    /**
     * Fragment页面onResume函数重载
     * MobclickAgent.onPageEnd("MainScreen");
     * */
    public static void onPageEnd(String viewName){
        MobclickAgent.onPageEnd("MainScreen");
    }


    /**
     * 登录统计
     *  MobclickAgent.onProfileSignIn("WB","userID");
     * */
    public void onSignIn(String userName){
        MobclickAgent.onProfileSignIn(userName);
    }

    /**
     * 登出统计
     * */
    public void signOut(){
        MobclickAgent.onProfileSignOff();
    }

}
